package br.edu.unilasalle.simon_api.domain;

// Generated 08/03/2014 18:19:52 by Hibernate Tools 4.0.0

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

/**
 * Cidade generated by hbm2java
 */
@Entity
@Table(name = "cidade", catalog = "simon")
@JsonIgnoreProperties(value = { "handler", "hibernateLazyInitializer", "enderecos", "bairros", "enderecoEntidades" })
public class Cidade extends BaseEntity<Long> {

	private static final long serialVersionUID = 5990050138060208939L;
	
	@Id
	@Column(name = "id", unique = true, nullable = false, insertable = false, updatable = false)
	private Long id;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_estado", nullable = false)
	private Estado estado;
	
	@Column(name = "nome", nullable = false, length = 50)
	private String nome;
	
	@Column(name = "uf", nullable = false, length = 2)
	private String uf;
	
	@Column(name = "cep", nullable = false, length = 10)
	private String cep;
	
	@Column(name = "cep2", nullable = false, length = 10)
	private String cep2;
	
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "cidade")
	private Set<Endereco> enderecos = new HashSet<Endereco>(0);
	
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "cidade")
	private Set<Bairro> bairros = new HashSet<Bairro>(0);
	
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "cidade")
	private Set<EnderecoEntidade> enderecoEntidades = new HashSet<EnderecoEntidade>(0);

	public Cidade() {
	}

	public Cidade(Long id, Estado estado, String nome, String uf, String cep,
			String cep2) {
		this.id = id;
		this.estado = estado;
		this.nome = nome;
		this.uf = uf;
		this.cep = cep;
		this.cep2 = cep2;
	}

	public Cidade(Long id, Estado estado, String nome, String uf, String cep,
			String cep2, Set<Endereco> enderecos, Set<Bairro> bairros,
			Set<EnderecoEntidade> enderecoEntidades) {
		this.id = id;
		this.estado = estado;
		this.nome = nome;
		this.uf = uf;
		this.cep = cep;
		this.cep2 = cep2;
		this.enderecos = enderecos;
		this.bairros = bairros;
		this.enderecoEntidades = enderecoEntidades;
	}

	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Estado getEstado() {
		return this.estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	
	public String getUf() {
		return this.uf;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}

	public String getCep() {
		return this.cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getCep2() {
		return this.cep2;
	}

	public void setCep2(String cep2) {
		this.cep2 = cep2;
	}

	public Set<Endereco> getEnderecos() {
		return this.enderecos;
	}

	public void setEnderecos(Set<Endereco> enderecos) {
		this.enderecos = enderecos;
	}

	public Set<Bairro> getBairros() {
		return this.bairros;
	}

	public void setBairros(Set<Bairro> bairros) {
		this.bairros = bairros;
	}

	public Set<EnderecoEntidade> getEnderecoEntidades() {
		return this.enderecoEntidades;
	}

	public void setEnderecoEntidades(Set<EnderecoEntidade> enderecoEntidades) {
		this.enderecoEntidades = enderecoEntidades;
	}

}
